// The module 'vscode' contains the VS Code extensibility API
// Import the module and reference it with the alias vscode in your code below
const vscode = require('vscode');

// This method is called when your extension is activated
// Your extension is activated the very first time the command is executed

/**
 * @param {vscode.ExtensionContext} context
 */
function activate(context) {

	// Use the console to output diagnostic information (console.log) and errors (console.error)
	// This line of code will only be executed once when your extension is activated
	console.log('Congratulations, your extension "word2codeblock" is now active!');

	// The command has been defined in the package.json file
	// Now provide the implementation of the command with  registerCommand
	// The commandId parameter must match the command field in package.json
	let disposable = vscode.commands.registerCommand('word2codeblock.format', function () {
		// The code you place here will be executed every time your command is executed

		// Display a message box to the user
		vscode.window.showInformationMessage('Format Successfully!');
		
		vscode.window.activeTextEditor.edit(editBuilder => {
			// 
			const selectionEnd = vscode.window.activeTextEditor.selection.end;
			const selectionStart = vscode.window.activeTextEditor.selection.start;

			const oldText = vscode.window.activeTextEditor.document.getText(new vscode.Range(selectionStart,selectionEnd));

			/**
			 * @param {string} text
			 */
			function format(text){

				return text.replace(/\b\w+\s?\w+\b/g,function(match){
					return '`'+match+'`';
				}  )
			}
			
			const newText = format(oldText);

			
			editBuilder.replace(new vscode.Range(selectionStart,selectionEnd), newText);
		});
		
	});

	context.subscriptions.push(disposable);
}

// This method is called when your extension is deactivated
function deactivate() {}

module.exports = {
	activate,
	deactivate
}
